Multipath error estimation in satellite navigation receivers

ABSTRACT

The invention presented in this disclosure gives methods to estimate and compensate for the multi-path in a typical navigational or spread spectrum receiver. The multi-path delay is estimated based on the outputs of different correlators of the receiver. Unlike three correlators normally used, the present disclosure uses five correlators, namely, Early 2  (E 2 ), Early 1  (E 1 ), Prompt (P), Late 1  (L 1 ) and Late 2  (L 2 ). The possible multi-path scenarios are classified into six different cases depending upon the reflected signal delay and the errors are computed. Further, the algorithm in the present disclosure can be extended to any correlators spacing.

FIELD OF THE INVENTION

The present invention relates generally to navigational and spreadspectrum signal receivers. More specifically, it relates to techniquesfor estimating and compensating the error due to multi-path.

BACKGROUND OF THE INVENTION

The global positioning system (GPS) is a satellite-basedradio-navigation system built and operated by the United StatesDepartment of Defense. The system uses twenty-four satellites orbitingthe earth at an altitude of about 11,000 miles with a period of abouttwelve hours. Some additional satellites may be present as spares. Thesesatellites are placed in six different orbits such that at any time aminimum of six satellites are visible at any location on the surface ofthe earth except in the polar region. Each satellite transmits a timeand position signal referenced to an atomic clock. A typical GPSreceiver locks on to this signal and extracts the data contained in it.Using signals from sufficient number of satellites, a GPS receiver cancalculate its position, velocity, altitude, and time.

The GPS receivers can operate in many modes. In a “hot start” mode, thereceiver already has the time, its last position, and the information onsatellite position (also known in the art as almanacs or ephemeris)stored in its memory. The receiver can use this stored information todetermine which satellites are probably visible, and it can then lock onthose satellite signals in a short time. On the other hand, the receivermay have no prior data on its position, time, or almanacs stored. Inthis “cold start” mode, the receiver has to search for signals from allof the satellites present in the constellation. There are some othermodes where partial information on time, position and almanacs areavailable and corresponding start mode is known as “warm start.”

The GPS receiver has to acquire and lock on to at least four satellitesin order to derive the position, velocity and time. Usually, a GPSreceiver has many parallel channels, each receiving signals from aseparate visible GPS satellite. The acquisition of the satellite signalsinvolves a two-dimensional search of frequency and the PN code phase.Each satellite transmits a unique PN code which repeats everymillisecond. The receiver locally generates a replica frequency and areplica code phase and correlates these with the received satellitesignals. The PN code has to be searched in at least 2046 phases and thefrequency search depends upon the Doppler frequency due to relativemotion between the satellite and the receiver. Additional frequencyvariation may result due to local oscillator instability.

The GPS receiver computes an estimate of the line-of-sight distance fromthe satellite to the receiver which may include errors due to receiverclock bias, and other effects. This estimated distance is known as thepseudo-range. The estimate of the pseudo-range often contains additionalerrors due to multi-path, i.e., the reflection of the signals by manyobjects like buildings, mountains, etc. as they propagate from thesatellite to the receiver. This reception of both line-of-sight andreflected signals often results in the computation of inaccuratepseudo-range, and thus also introduces errors in the estimated positionof the receiver. Due to the superposition of the direct and reflectedsignals (which are slightly delayed), the resulting correlation patterndeviates from its usual triangular shape exhibiting a multi-peakcorrelation curve. The earliest correlation peak corresponds to thedirect signal, but the position of the peak may be shifted from its trueposition due to the superposition of the direct and reflected signals.This shift in the position of the correlation peak results inpseudo-range error and error in the computed receiver position. Further,the early and late correlators adjust their values to be equal and forcethe prompt correlator to remain at the center. Thus the promptcorrelator represents the wrong peak. This has been discussed later inthis section. This reception scenario may be more complex in thepresence of plurality of reflected signals.

There are several known methods available to estimate and compensate forthe error due to multi-path. One of the most popular and widely usedmethods is the use of narrow correlators. The correlators in a spreadspectrum or GPS receiver give the correlation values for different phaseshifts between the received and local PN sequence. Usually theseparation is about half of a chip, where a chip is one bit of the PNsequence. In GPS navigation, a half-chip delay corresponds to about 150meters of distance. So, if the reflected signal has a pseudo-range whichis 150 meters more than the direct signal, it contributes to the energyof the next correlator also known as L (late) correlator, rather than tothe correct correlator known as P (prompt). Thus, the resultingcorrelation curve may shift the peak towards the L correlator. When thepseudo-range change is different from 150 meters, the correlation curvemay take a different shape. When the correlators are placed closer thana half chip apart, a reflected signal may peak in one of thesecorrelators, so the true and reflected signals may be separated. The useof narrow correlators, however, increases the hardware complexity andpower consumption. Use of a multi-antenna system to nullify the gain inthe direction of multi-path is another technique employed which isuseful mostly in static conditions. The ground-plane and helical shieldare useful only under static conditions. The other methods of multi-pathmitigation include the one based on the level of stability ofpseudo-range as given in U.S. Pat. No. 6,484,098, use of L1 and L2signals as in U.S. Pat. No. 5,185,610, use of multi-bit correlators asin U.S. Pat. No. 6,393,046, based on data bits as in U.S. Pat. No.5,963,601, velocity based as in U.S. Pat. No. 5,771,456, satellitetrajectory based as given in U.S. Pat. No. 5,726,659, may be based onthe variation in SNR, using wavelets or maximum likelihood (ML) orMinimum Mean-Square-Error (MMSE) methods. But most of these methods maynot provide good multi-path mitigation below certain value of multi-pathlength or in some other cases it may involve lot of computation. Some ofthese techniques are useful only when one multi-path component ispresent while in practice there may be many possible reflectedcomponents.

But recently, multi-path mitigation techniques based on correlatoroutputs such as Early (E), Prompt (P), Late (L) have been developed.These are based on the fact that the earliest component at the receiveris the direct signal while various reflected signals arrive later andcontribute to the later correlator outputs. The patent applicationpublication US2005/0032477A1 of Qualcomm Inc uses stored correlationcurves and compares them with the present correlation curve to determinethe multi-path. This stored patterns technique also includesmathematical models. But this requires lot of storage memory and alsothe comparison may not hold good under all conditions. The U.S. Pat.Nos. 5,692,008 issued to NovAtel and 6,917,644 issued to SiRF determinethe shift in prompt correlator position due to the requirement E=L, theE and L being subjected to different levels of reflected signal power.The SiRF patent takes into account only the E, P and L correlators indetermining multi-path while the NovAtel does not specifically give anynumber of correlators. Another method reported in the mitigation of themulti-path effect is the double delta technique. This technique usesfive correlators but it has the disadvantage that it requires a highprecision measurement of E2, E1, L1 and L2 values because the measureddifferences (E1−L1) and (E2−L2) are usually very small.

Accordingly, there is a need in the art for a navigational satellitesignal receiver to be able to detect and compensate for the multi-patheffects beyond E, P and L correlators.

SUMMARY OF THE INVENTION

The invention presented in this disclosure provides methods to estimateand compensate for the multi-path error in a typical navigational orspread spectrum receiver. The multi-path delay is estimated based on theoutputs of different correlators of the receiver. Unlike threecorrelators normally used, the present methods use five correlators,namely, Early2 (E2), Early1 (E1), Prompt (P), Late1 (L1) and Late2 (L2).The possible multi-path scenarios are classified into six differentcases depending upon the reflected signal delay and the errors arecomputed. Further, the methods can be extended to any correlatorspacing.

According to one aspect of the invention, a method of detecting andcompensating for receiver timing errors due to multi-path in a spreadspectrum receiver is provided. The method includes receiving signalsfrom a remote transmitter and generating a local PN sequence that isthen correlated with the received signals. The correlation is performedat five different code phases to produce five corresponding correlationvalues. The five different code phases are separated by an interval ofat least one-third of a chip of the local PN sequence. Using at leastone of the five correlation values, a time delay error due to multi-patherror is estimated. The estimated time delay error is then used tocompensate a receiver timing error due to the multi-path.

In a preferred embodiment, the time delay error is estimated using asingle mathematical expression for all delays and polarities of areceived reflected signal. The time delay error may be estimated, forexample, by determining from the correlation values one of multipleformulas, and then calculating the time delay error using the determinedformula. Already available power values from different correlators maybe used to improve accuracy of the estimated time delay error.

The method may also include refining a code-phase increment by averaginga ratio of the power of a second correlator to a prompt correlator. Theaveraging may be, for example, a moving average or other smoothingtechnique. Preferably, the averaging uses an averaging period largerthan a multi-path period.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a GPS baseband section accordingto an embodiment of the invention.

FIG. 2A is the ideal correlation of a PN sequence used in a spreadspectrum communication.

FIG. 2B is a typical correlation curve with both the direct and a singlereflected or multi-path signal.

FIG. 3 is the ideal correlation triangle for a correlator spacing of ⅓of a chip.

FIG. 4 is a typical correlation curve with both the direct and a singlereflected or multi-path signal with a correlator spacing of ⅓ of a chip.

FIG. 5 shows a graph of the theoretical multipath effect as a plot oftime shift between the correlation maximum values due to direct andreflected signals (τ) versus the delay in chips (δ).

FIG. 6 shows the multipath correction using τ₀=E2−⅓.

FIG. 7 shows the multipath correction bias using τ₀=E2−⅓.

FIG. 8 shows the multipath correction when E1+E2>P and E1+E2<P based onE1 and E2.

FIG. 9 shows the multipath error for FIG. 8.

FIG. 10 shows the multipath correction when E1+E2>P and E1+E2<P based onE1 and L1.

FIG. 11 shows the multipath error for FIG. 10.

FIG. 12 shows the measured and computed multipath correction data forPRN 20.

FIG. 13 illustrates a computation formula applied to three cases: (1)any α, (2) when α≧0, and (3) when α<0.

FIG. 14 is a flowchart illustrating a multipath error estimationtechnique according to an embodiment of the invention.

DETAILED DESCRIPTION

A receiver according to an embodiment of the present invention isillustrated in FIG. 1. An intermediate frequency (IF) signal input 101enters a baseband section of the receiver from an analog-to-digitalconverter (ADC) output of a conventional RF front-end 100. The IF inputis multiplied in IF mixers 102 and 103 in-phase and in quadrature,respectively, with a local frequency signal generated by a directdigital frequency synthesizer (DDFS) 106. This mixing involvesmultiplying the ADC output 101 by the local DDFS frequency in-phasewhich generates the in-phase (I) component 107. In a parallel path thesame signal 101 is multiplied by the DDFS frequency in quadrature (i.e.,with a phase shift of 90 degrees) to produce quadrature (Q) component108. The DDFS 106 is driven by a carrier numerically controlledoscillator (NCO) 105. In addition, carrier NCO 105 receives phase andfrequency corrections from a processor 113. Because of this correction,the DDFS frequency and phase is almost the same as that of ADC output101. Thus the I and Q signals produced by the IF mixers 102 and 103 arebaseband signals, i.e., near zero carrier frequency. The I and Q signalsmay be low-pass filtered to remove the high frequency components whichare equal to twice the IF frequency band.

The I and Q components 107 and 108 are correlated in correlators 109 and110, respectively, with a locally-generated PN sequence generated by aPN generator 111. The PN-sequence corresponds to the channel beingprocessed by the baseband section at that time. The PN sequencegenerator is driven by code NCO 112. The local code generator frequencyis made equal to the code rate of I and Q paths by corrective feedbackfrom processor 113 to the code NCO 112. In addition, processor 113 sendsa signal to PN code generator 111 to set the starting phase of thelocally generated code. The NCO 112 provides the correct clock signalsto correlators 109 and 110. For example, NCO 112 provides a clock signalto generate two samples per PN chip in the signal acquisition stage andthree samples per chip during the tracking stage. SYS CLK 104 providesto NCO 105 and NCO 112 a common clock synchronization signal. Thecorrelator output values are then sent to processor 113 at everymillisecond interval. The processor 113 may be a digital signalprocessor (DSP) core. Subsequent processing of the signals takes placein the processor 113, as will be described in detail below. Additionaldetails of the receiver baseband section described above are containedin U.S. patent application Ser. No. 11/123,861 filed May 6, 2005, whichis incorporated herein by reference.

The DSP core 113 receives one millisecond integrated (correlated) I andQ values from the GPS baseband section described above. In order toacquire a GPS signal in the DSP processor, all dwells (i.e., pairs ofcarrier frequency and code phase values) are searched. It is atwo-dimensional search. Coherent integration and non-coherentintegration are two commonly used integration methods to acquire GPSsignals. Coherent integration provides better signal gain at the cost oflarger computational load, for equal integration times.

A spread spectrum or navigation receiver employing spread spectrumtechniques compares or correlates the received signal samples with thelocally generated replica, both being spread by the same PN sequence.The phase of the local replica is changed until a high correlation valueindicative of the synchronization has been reached. The correlationvalue curve usually has a triangular shape as shown in 10 of FIG. 2A.The maximum of 1023 (for Gold code of length 1023) for zero phase offsetis shown as 11 and linearly decreasing to −1 when the phase offset isone chip on either side of the maximum as indicated by 12 and 13.Alternatively, the high correlation point can be represented by anormalized value of 1 and the lower value is − 1/1023.

FIG. 2B represents the variation of the correlation value when areflected signal or multi-path is present. The correlation due to thesuperposition of the direct and reflected signal is shown by the curve210. The non-linear curve 210 consists of various linear components 211,212, 213, 214 and 215 due to the superposition of the direct andmulti-path signals. The correlation triangle due to the direct signal isrepresented by the sides 221 and 222. The correlation triangle due tothe reflected signal is represented by the sides 231 and 232. Thesuperposition of these two triangles results in the correlation curve210. The portion 211 is due to the direct signal, the portion 212 is dueto the superposition lead sides 221 and 231 of direct and reflectedsignals, respectively. The linear portion 213 is the result ofsuperposition of trailing edge 222 of the direct signal and leading edge231 of the reflected signal. The linear portion 214 of the resultantsignal is due to the superposition of the trailing edge 222 of thedirect signal and 232 of the reflected signal and finally the linearportion 215 is due to the trailing edge of the reflected signal. Thedelay between the direct signal and the reflected signal is given by 202or δ shown as the distance between the correlation peaks. Thecorrelation peak value is 1 for the direct signal while for thereflected signal it is α. A basic spread spectrum or GPS receiverusually has three correlators the Early (E), prompt (P) and Late (L).While a signal is being tracked, the power level of E as given by 203and the power level 204 represented by L will be forced by Delay LockLoop (DLL) of the receiver such that power of E=power of L. This willforce the prompt correlator to be at the center of E and L at Pindicated as 205. The corresponding correlation power will be equal to(D1+D2) where D1 is the correlation power of E or L. Thus it is seenfrom the FIG. 2B, that prompt correlator has been shifted by τ₀ withrespect to the peak of the direct signal. Thus τ₀ represents the errorin time computation due to the multi-path. This error has to bedetermined to correct for any multi-path error in the pseudo-range.

When correlators are spaced more closely, there will be more than oneEarly and Late points on the early-side and late-side edge of thecorrelation curve. In one of the embodiments considered here and shownin FIG. 3, there are two early correlators denoted as 305 (E1) and 304(E2) and two late correlators denoted as 306 (L1) and 307 (L2). Thepositioning of these correlators and corresponding auto-correlationvalues are also shown in FIG. 3 for direct signal with no multi-path. Ingeneral, the five different code phases that generate the E1, E2, P, L1,L2 correlation values are separated by an interval of at least one-thirdof a chip of the local PN sequence. In the case shown in FIG. 3, thecorrelation value at 305 or 306 is ⅔ of the value at 301 while it is ⅓at 304 and 307. As already seen, the triangular form will be distortedwhen multi-path is present.

Using at least one of the five correlation values, a time delay errordue to multi-path error is estimated. The estimated time delay error isthen used to compensate a receiver timing error due to the multi-path.In a preferred embodiment, the time delay error is estimated using asingle mathematical expression for all delays and polarities of areceived reflected signal. Based on the correlation values, a multipathscenario and corresponding formula is determined. The time delay erroris then calculated using the selected formula, as will be described indetail below.

A mathematical analysis is presented below to determine the power ofvarious correlators under different delays of reflected signal. Underideal conditions with no multi-path the triangular correlation given inFIG. 1 may be represented by,

$\begin{matrix}{{R(t)} = \left\{ \begin{matrix}{{1 - {t}},} & {{t} \leq 1} \\{0,} & {{t} \geq 1}\end{matrix} \right.} & (1)\end{matrix}$

Where R(t) is the correlation value and t is the delay between the twocorrelating signals. The following analysis has been made for Early Latespacing at 1 chip and also a detailed analysis for Early Late spacing at⅔ chip. The section A is on Early Late spacing at 1 chip while section Bis for a spacing at ⅔ chip.

A. Early Late Spacing at 1 Chip

The values of Early (E), Late (L) and Prompt (P) for Early Late spacingof one chip duration may be given as,E=R(τ₀−0.5)+αR(0.5−τ₀+δ)  (2)L=R(τ₀+0.5)+αR(0.5+τ₀−δ)  (3)P=R(τ₀)+αR(τ₀−δ))  (4)where τ₀ is the time error due to multi-path, α is the maximumcorrelation due to the reflected signal and δ is the time shift betweenthe correlation maximum values due to direct and reflected signals.These variables are illustrated in FIG. 2B.

When the signal is being tracked, the Delay Lock Loop (DLL) will forceE=L and the following equation can be derived:

$\begin{matrix}{\tau_{0} = \frac{\alpha\;\delta}{1 + \alpha}} & (5)\end{matrix}$under the condition δ<τ₀+0.5, and

$\begin{matrix}{\tau_{0} = \frac{\alpha\left( {1.5 - \delta} \right)}{2 - \alpha}} & (6)\end{matrix}$under the condition that δ>τ₀+0.5.B. Early Late Spacing at ⅔ Chip

The correlator spacing is as shown in FIG. 3 where the E1 and L1 arespaced at ⅔ chip apart. There is another set of correlators E2 and L2which are at ⅓ chip away from E1 and L1, respectively. Both of thesesets can be used to determine the time error due to multi-path. Thepeak, P, is at the center.

When multi-path is present, the correlation values are shown in FIG. 4.The E1, E2, L1, L2 and P for this case are:E2=R(⅔−τ₀)+αR(⅔−τ₀+δ)  (7)E1=R(⅓−τ₀)+αR(⅓−τ₀+δ)  (8)P=R(τ₀)+αR(τ₀−δ))  (9)L1=R(⅓+τ₀)+αR(⅓+τ₀−δ)  (10) (10)L2=R(⅔+τ₀)+αR(⅔+τ₀−δ)  (11)

Different cases, in which the shift δ takes values in different rangescan be considered as follows:CASE 1: δ≦τ₀+⅓

In this case we have

$\begin{matrix}\begin{matrix}{{E\; 2} = {{R\left( {{2/3} - \tau_{0}} \right)} + {\alpha\;{R\left( {{2/3} - \tau_{0} + \delta} \right)}}}} \\{= {1 - \left( {{2/3} - \tau_{0}} \right) + {\alpha\left( {1 - \left( {{2/3} - \tau_{0} + \delta} \right)} \right)}}} \\{= {{\left( {1 + \alpha} \right)/3} + {\tau_{0}\left( {1 + \alpha} \right)} - {\alpha\;\delta}}}\end{matrix} & (12) \\\begin{matrix}{{E\; 1} = {{R\left( {{1/3} - \tau_{0}} \right)} + {\alpha\;{R\left( {{1/3} - \tau_{0} + \delta} \right)}}}} \\{= {\left( {1 - \left( {{1/3} - \tau_{0}} \right)} \right) + {\alpha\left( {1 - \left( {{1/3} - \tau_{0} + \delta} \right)} \right)}}} \\{= {{{2/3}\left( {1 + \alpha} \right)} + {\tau_{0}\left( {1 + \alpha} \right)} - {\alpha\;\delta}}}\end{matrix} & (13) \\\begin{matrix}{{L\; 1} = {{R\left( {{1/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{1/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{1/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {{1/3} + \tau_{0} - \delta} \right)} \right)}}} \\{= {{{2/3}\left( {1 + \alpha} \right)} - {\tau_{0}\left( {1 + \alpha} \right)} + {\alpha\;\delta}}}\end{matrix} & (14) \\\begin{matrix}{{L\; 2} = {{R\left( {{2/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{2/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{2/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {{2/3} + \tau_{0} - \delta} \right)} \right)}}} \\{= {{{1/3}\left( {1 + \alpha} \right)} - {\tau_{0}\left( {1 + \alpha} \right)} + {\alpha\;\delta}}}\end{matrix} & (15)\end{matrix}$

The DLL will force E1=L1. The following equations can be derived:

$\begin{matrix}{\tau_{0} = \frac{\alpha\;\delta}{1 + \alpha}} & (16) \\{{E\; 2} = {\left( {1 + \alpha} \right)/3}} & (17) \\{{E\; 1} = {2{\left( {1 + \alpha} \right)/3}}} & (18) \\{{L\; 1} = {2{\left( {1 + \alpha} \right)/3}}} & (19) \\{{{L\; 2} = {\left( {1 + \alpha} \right)/3}}{{{If}\mspace{14mu}\alpha} \geq {0\mspace{14mu}{then}}}} & (20) \\\begin{matrix}\left. {P = {{R\left( \tau_{0} \right)} + {\alpha\;{R\left( {\tau_{0} - \delta} \right)}}}} \right) \\{= {1 - \tau_{0} + {\alpha\left( {1 - \left( {\delta - \tau_{0}} \right)} \right)}}} \\{= {1 + \alpha - \tau_{0} + {\alpha\;\tau_{0}} - {\alpha\;\delta}}}\end{matrix} & (21) \\{{\tau_{0} = {{3{\left( {{E\; 1} + {L\; 1}} \right)/8}} - {P/2}}}{or}} & (22) \\{\tau_{0} = {{\left( {{E\; 1} + {E\; 2} + {L\; 1} + {L\; 2}} \right)/4} - {P/2}}} & (23) \\{{{\tau_{0} = {{\left( {{E\; 1} + {E\; 2}} \right)/2} - {P/2}}}{{{If}\mspace{14mu}\alpha} < {0\mspace{14mu}{then}}}}\;} & (24) \\\begin{matrix}\left. {P = {{R\left( \tau_{0} \right)} + {\alpha\;{R\left( {\tau_{0} - \delta} \right)}}}} \right) \\{= {1 + \tau_{0} + {\alpha\left( {1 - \left( {\delta - \tau_{0}} \right)} \right)}}} \\{= {1 + \alpha + \tau_{0} + {\alpha\;\tau_{0}} - {\alpha\;\delta}}} \\{= {1 + \alpha}}\end{matrix} & (25) \\{{{3{\left( {{E\; 1} + {L\; 1}} \right)/8}} - {P/2}} = 0} & (26)\end{matrix}$

In this case, there is no way to derive τ₀ and δ from E1, L1 and P.CASE 2: τ₀+⅓<δ≦τ₀+⅔  (27)

No multipath relfection on E2. In this case have

$\begin{matrix}{{E\; 2} = {{R\left( {{2/3} - \tau_{0}} \right)} = {{1 - \left( {{2/3} - \tau_{0}} \right)} = {{1/3} + \tau_{0}}}}} & (28) \\\begin{matrix}{{E\; 1} = {{R\left( {{1/3} - \tau_{0}} \right)} + {\alpha\;{R\left( {{1/3} - \tau_{0} + \delta} \right)}}}} \\{= {\left( {1 - \left( {{1/3} - \tau_{0}} \right)} \right) + {\alpha\left( {1 - \left( {{1/3} - \tau_{0} + \delta} \right)} \right)}}} \\{= {{{2/3}\left( {1 + \alpha} \right)} + {\tau_{0}\left( {1 + \alpha} \right)} - {\alpha\;\delta}}}\end{matrix} & (29) \\\begin{matrix}{{L\; 1} = {{R\left( {{1/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{1/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{1/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {\delta - {1/3} - \tau_{0}} \right)} \right)}}} \\{= {{{2/3}\left( {1 + \alpha} \right)} - {\tau_{0}\left( {1 - \alpha} \right)} + {2\;{\alpha/3}} - {\alpha\;\delta}}}\end{matrix} & (30) \\\begin{matrix}{{L\; 2} = {{R\left( {{2/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{2/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{2/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {{2/3} + \tau_{0} - \delta} \right)} \right)}}} \\{= {{{1/3}\left( {1 + \alpha} \right)} - {\tau_{0}\left( {1 + \alpha} \right)} + {\alpha\;\delta}}}\end{matrix} & (31)\end{matrix}$

The DLL will force E1=L1. The following equations can be derived:

$\begin{matrix}{\tau_{0} = {\alpha/3}} & (32) \\{{E\; 2} = {{R\left( {{2/3} - \tau_{0}} \right)} = {{1 - \left( {{2/3} - \tau_{0}} \right)} = {{1/3} + \tau_{0}}}}} & (33) \\\begin{matrix}{{E\; 1}\; = {{R\left( {{1/3} - \tau_{0}} \right)} + {\alpha\;{R\left( {{1/3} - \tau_{0} + \delta} \right)}}}} \\{= {\left( {1 - \left( {{1/3} - \tau_{0}} \right)} \right)\; + \;{\alpha\left( {1 - \left( {{1/3} - \tau_{0} + \delta} \right)} \right)}}} \\{= {{{2/3}\;\left( {1 + \alpha} \right)} + {\tau_{0}\left( {1 + \alpha} \right)} - {\alpha\;\delta}}}\end{matrix} & (34) \\\begin{matrix}{{L\; 1} = {{R\left( {{1/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{1/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{1/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {\delta - {1/3} - \tau_{0}} \right)} \right)}}} \\{= {{{2/3}\left( {1 + \alpha} \right)} - {\tau_{0}\left( {\left( {1 - \alpha} \right) + {2\;{\alpha/3}} - {\alpha\;\delta}} \right.}}}\end{matrix} & (35) \\\begin{matrix}{{L\; 2} = {{R\left( {{2/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{2/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{2/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {{2/3} + \tau_{0} - \delta} \right)} \right)}}} \\{= {{{1/3}\left( {1 + \alpha} \right)} - {\tau_{0}\left( {1 + \alpha} \right)} + {\alpha\;\delta}}}\end{matrix} & (36)\end{matrix}$

The multipath delay can be derived by power measurement E2:

$\begin{matrix}{{\tau_{0} = {{E\; 2} - {1/3}}}{or}} & (37) \\{{\tau_{0} = {{{- 1}/3} + {\left( {{E\; 1} + {L\; 2}} \right)/3}}}{{{If}\mspace{14mu}\alpha} \geq {0\mspace{14mu}{then}}}} & (38) \\\begin{matrix}\left. {P = {{R\left( \tau_{0} \right)} + {\alpha\;{R\left( {\tau_{0} - \delta} \right)}}}} \right) \\{= {1 - \tau_{0} + {\alpha\left( {1 - \left( {\delta - \tau_{0}} \right)} \right)}}} \\{= {1 + \alpha - \tau_{0} + {\alpha\;\tau_{0}} - {\alpha\;\delta}}}\end{matrix} & (39)\end{matrix}$

The multipath delay can also be derived by power measurements P and L1:

$\begin{matrix}{{\tau_{0} = {{1/3} - \left( {P - {L\; 1}} \right)}}{or}} & (40) \\{{\tau_{0} = {{1/3} - \left( {P - {E\; 1}} \right)}}{and}} & (41) \\{{\tau_{0} = {{{- 2}/3} + {\left( {P + {L\; 2}} \right)/2}}}{{{If}\mspace{14mu}\alpha} < {0\mspace{14mu}{then}}}} & (42) \\\begin{matrix}\left. {P = {{R\left( \tau_{0} \right)} + {\alpha\;{R\left( {\tau_{0} - \delta} \right)}}}} \right) \\{= {1 + \tau_{0} + {\alpha\left( {1 - \left( {\delta - \tau_{0}} \right)} \right)}}} \\{= {1 + \alpha + \tau_{0} + {\alpha\;\tau_{0}} - {\alpha\;\delta}}}\end{matrix} & (43)\end{matrix}$

The multipath delay can also be derived by power measurements P and E1:

$\begin{matrix}{{\tau_{0} = {{{- 1}/3} + \left( {P - {E\; 1}} \right)}}{or}} & (44) \\{{\tau_{0} = {{{- 1}/3} + \left( {P - {L\; 1}} \right)}}{and}} & (45) \\{\tau_{0} = {{{- 1}/3} + {\left( {P + {L\; 2}} \right)/4}}} & (46)\end{matrix}$CASE 3: τ₀+⅔<δ≦τ₀+1

No multipath reflection on E2, E1. In this case we have

$\begin{matrix}{{E\; 2} = {{R\left( {{2/3} - \tau_{0}} \right)} = {{1 - \left( {{2/3} - \tau_{0}} \right)} = {{1/3} + \tau_{0}}}}} & (47) \\{{E\; 1} = {{R\left( {{1/3} - \tau_{0}} \right)} = {\left( {1 - \left( {{1/3} - \tau_{0}} \right)} \right) = {{2/3} + \tau_{0}}}}} & (48) \\\begin{matrix}{{L\; 1} = {{R\left( {{1/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{1/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{1/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {\delta - {1/3} - \tau_{0}} \right)} \right)}}} \\{= {{2/3} + {4\;{\alpha/3}} - {\tau_{0}\left( {1 - \alpha} \right)} - {\alpha\;\delta}}}\end{matrix} & (49) \\\begin{matrix}{{L\; 2} = {{R\left( {{2/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{2/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{2/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {\delta - {2/3} - \tau_{0}} \right)} \right)}}} \\{= {{1/3} + {5\;{\alpha/3}} - {\tau_{0}\left( {1 - \alpha} \right)} - {\alpha\;\delta}}}\end{matrix} & (50)\end{matrix}$

The DLL will force E1=L1. The following equations can be derived:

$\begin{matrix}{\tau_{0} = \frac{\alpha\left( {{4/3} - \delta} \right)}{2 - \alpha}} & (51) \\{\tau_{0} = {{E\; 2} - {1/3}}} & (52) \\{\tau_{0} = {{E\; 1} - {2/3}}} & (53) \\{{\tau_{0} = {{L\; 1} - {2/3}}}{{{If}\mspace{14mu}\alpha} \geq {0\mspace{14mu}{then}}}} & (54) \\\begin{matrix}\left. {P = {{R\left( \tau_{0} \right)} + {\alpha\;{R\left( {\tau_{0} - \delta} \right)}}}} \right) \\{= {1 - \tau_{0} + {\alpha\left( {1 - \left( {\delta - \tau_{0}} \right)} \right)}}} \\{= {1 + \alpha - \tau_{0} + {\alpha\tau}_{0} - {\alpha\delta}}}\end{matrix} & (55) \\{\alpha = {1 + {3{\left( {{L\; 2} - P} \right)/2}}}} & (56) \\{{\tau_{0} = {{{- 2}/3} + {\left( {P + {L\; 2}} \right)/2}}}{{{If}\mspace{14mu}\alpha} < {0\mspace{14mu}{then}}}} & (57) \\\begin{matrix}\left. {P = {{R\left( \tau_{0} \right)} + {\alpha\;{R\left( {\tau_{0} - \delta} \right)}}}} \right) \\{= {1 + \tau_{0} + {\alpha\left( {1 - \left( {\delta - \tau_{0}} \right)} \right)}}} \\{= {1 + \alpha + \tau_{0} + {\alpha\tau}_{0} - {\alpha\delta}}}\end{matrix} & (58) \\{\tau_{0} = {{{- 1}/3} + {\left( {P + {L\; 2}} \right)/4}}} & (59)\end{matrix}$CASE 4: τ₀+1<δ≦4/3

No multi-path reflection on E2, E1, P. In this case

$\begin{matrix}{{E\; 2} = {{R\left( {{2/3} - \tau_{0}} \right)} = {{1 - \left( {{2/3} - \tau_{0}} \right)} = {{1/3} + \tau_{\; 0}}}}} & (60) \\{{E\; 1} = {{R\left( {{1/3} - \tau_{0}} \right)} = {\left( {1 - \left( {{1/3} - \tau_{0}} \right)} \right) = {{2/3} + \tau_{0}}}}} & (61) \\\begin{matrix}{{L\; 1} = {{R\left( {{1/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{1/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{1/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {\delta - {1/3} - \tau_{0}} \right)} \right)}}} \\{= {{2/3} + {4\;{\alpha/3}} - {\tau_{0}\left( {1 - \alpha} \right)} - {\alpha\;\delta}}}\end{matrix} & (62) \\\begin{matrix}{{L\; 2} = {{R\left( {{2/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{2/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{2/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {\delta - {2/3} - \tau_{0}} \right)} \right)}}} \\{= {{1/3} + {5\;{\alpha/3}} - {\tau_{0}\left( {1 - \alpha} \right)} - {\alpha\;\delta}}}\end{matrix} & (63)\end{matrix}$

The DLL will force E1=L1. The following equations can be derived:

$\begin{matrix}{\tau_{0} = \frac{\alpha\left( {{4/3} - \delta} \right)}{2 - \alpha}} & (64) \\{\tau_{0} = {{E\; 2} - {1/3}}} & (65) \\{{\tau_{0} = {{E\; 1} - {2/3}}}{or}} & (66) \\{\tau_{0} = {{L\; 1} - {2/3}}} & (67) \\{\begin{matrix}{{L\; 2} = {{R\left( {{2/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{2/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{2/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {\delta - {2/3} - \tau_{0}} \right)} \right)}}} \\{= {{1/3} + {\alpha/3} + \tau_{0}}}\end{matrix}{{{If}\mspace{14mu}\alpha} \geq {0\mspace{14mu}{then}}}} & (68) \\{P = {{R\left( \tau_{0} \right)} = {1 - \tau_{\; 0}}}} & (69) \\{{\tau_{0} = {1 - P}}{{{If}\mspace{14mu}\alpha} < {0\mspace{14mu}{then}}}} & (70) \\{P = {{R\left( \tau_{0} \right)} = {1 + \tau_{0}}}} & (71) \\{\tau_{0} = {P - 1}} & (72)\end{matrix}$CASE 5: 4/3<δ≦5/3

No multipath reflection on E2, E1, P, L1. In this case

$\begin{matrix}{{E\; 2} = {{R\left( {{2/3} - \tau_{0}} \right)} = {{1 - \left( {{2/3} - \tau_{0}} \right)} = {{1/3} + \tau_{\; 0}}}}} & (73) \\{{E\; 1} = {{R\left( {{1/3} - \tau_{0}} \right)} = {\left( {1 - \left( {{1/3} - \tau_{0}} \right)} \right) = {{2/3} + \tau_{0}}}}} & (74) \\{{L\; 1} = {{R\left( {{1/3} + \tau_{0}} \right)} = {{1 - \left( {{1/3} + \tau_{0}} \right)} = {{2/3} - \tau_{0}}}}} & (75) \\\begin{matrix}{{L\; 2} = {{R\left( {{2/3} + \tau_{0}} \right)} + {\alpha\;{R\left( {{2/3} + \tau_{0} - \delta} \right)}}}} \\{= {1 - \left( {{2/3} + \tau_{0}} \right) + {\alpha\left( {1 - \left( {\delta - {2/3} - \tau_{0}} \right)} \right)}}} \\{= {{1/3} + {5\;{\alpha/3}} - {\alpha\;\delta}}}\end{matrix} & (76)\end{matrix}$

The DLL will force E1=L1. The following equations can be derived:τ₀=0  (77)P=R(τ₀)=1  (78)CASE 6: δ≧5/3  (79)

No multi-path reflection on all five powers.

The above expressions for τ₀ are summerised FIG. 13. The multipath delayτ₀ can be computed by formula in the third row of FIG. 13 if it isassumed that δ and α are known.

FIG. 5 shows the theoretical multipath effect based on δ and alpha.However, in reality, δ and α can not be measured and the onlymeasurements are E2, E1, P, L1 and L2.

The L2 should not be used because L2 will still be affected by multipathδ≧4/3 until δ≧5/3 although τ₀=0.

From summary FIG. 13, the following three methods may be concluded:

Method 1: τ₀=E2−½ is applied for Cases 2-6 no matter what the value ofα. FIG. 6 shows the computed multipath delay using this formula.Comparing with FIG. 5, it can be seen the formula has been biased forcase 1 which is shown in FIG. 7.

Method 2: If α≧0, we can have E1+E2>P and if α≦0, we can have E1+E2<P.When E1+E2>P, τ₀=(E1+E2)/2−P/2 will be applied. Otherwise τ₀=E2−⅓ isapplied. FIG. 8 gives multipath corrections and FIG. 9 gives the biases.

Method 3: There is an alternative for above case. When E1+E2>P,τ₀=3(E1+L1)/8−P/2 will be applied. Otherwise τ₀=E2−⅓ is applied. FIG. 10illustrates the multipath corrections and FIG. 11 shows the biases.

In most of the cases, the methods 2 and 3 are used. This has beenillustrated in the flowchart shown in FIG. 14. According to thisflowchart, the values of E1, L1, E2 and P are measured (step 1400) undermultipath condition. If the value of (E1+E2) is greater than P (step1410) then τ₀ is computed using either τ₀=(E1+E2)/2−P/2 orτ₀=3(E1+L1)/8−P/2 (step 1420). When (E1+E2)<P, then τ₀=E2−⅓ is applied(step 1430). These values are corrected with the already known biases(step 1440) as shown in FIG. 9 and FIG. 10 to obtain the actualcorrection value τ (step 1450). This corrected value of the multipatherror is used to correct the estimated position (1460). If only thevalue of E2 is available then the formula τ₀=E2−½ of method 1 isapplied.

There are two practical issues when the algorithm is implemented in thesystem.

1. All the power values in the above derivation have been unified as 1for P under the condition that there is no multipath.

2. E1 and L1 are not exactly at ⅔ unified value, and E2 and L2 are notat ⅓ unified values.

Accordingly, the method of the invention may also include refining acode-phase increment by averaging a ratio of the power of a secondcorrelator to a prompt correlator. For Method 1, the ⅓ point can bereplaced by x(k), given by a smoothing formula, e.g., the moving average

$\begin{matrix}{{x(k)} = {{\frac{N - 1}{N}{x\left( {k - 1} \right)}} + {\frac{e\; 2(k)}{N \cdot {p(k)}}.}}} & (80)\end{matrix}$

If N>N_(max), let N=N_(max). The value of N_(max) (the averaging period)preferably should be larger than a maximum period of multipath. Normallythe period of 10 minutes is a good number which means that N_(max)=600when measurement interval is 1 second. And E2 will be replaced by

$\frac{e\; 2(k)}{p(k)}.$Where e2(k) and p(k) are original power values for E2 and P. Thepractical formula for computation of the error in position is then givenby:

$\begin{matrix}{{{MP}(k)} = {{\frac{\gamma}{x(k)}\left\lbrack {\frac{e\; 2(k)}{p(k)} - {x(k)}} \right\rbrack} \cdot \frac{c}{1023000}}} & (81)\end{matrix}$where γ is obtained by experimentation, and c is the speed of light.

The experiment results from different data sets show that thepositioning accuracy (standard deviation) can be improved 20-30%. Thus,already available power values from different correlators may be used toimprove accuracy of the estimated time delay error and positioningaccuracy.

FIG. 12 shows multipath corrections (red line) and measured multipath(blue line) for PRN 20. The blue line includes ionosphere effect.

Since the positioning accuracy are highly affected by both ionosphereand multipath. 30% of positioning accuracy improvement means that themultipath itself has been mitigated by over 50%.

Although the present invention has been described in terms of thepresently preferred embodiments, it is to be understood that thedisclosure is not to be interpreted as limiting. Various alterations andmodifications will no doubt become apparent to those skilled in the artafter having read this disclosure. For example, although the aboveembodiments have been described using the GPS system as an example, thetechniques and methods may be used for other global satellitenavigational systems including GLONASS, Galileo, secondary systems suchas WASS, EGNOS, and MSAS, as well as hybrids of the above systems.Accordingly, it is intended that the appended claims be interpreted ascovering all alterations and modifications as fall within the spirit andscope of the invention.

1. A method of detecting and compensating for receiver timing errors dueto multi-path in a spread spectrum receiver, the method comprising:receiving signals from a remote transmitter; generating a local PNsequence; correlating the received signals with the local PN sequence atfive different code phases to produce five corresponding correlationvalues, wherein the five different code phases are separated by aninterval of at least one-third of a chip of the local PN sequence;estimating from at least one of the five correlation values a time delayerror due to the multi-path; compensating a receiver timing error due tothe multi-path using the estimated time delay error; and refining acode-phase increment by averaging a ratio of the power of a secondcorrelator to a prompt correlator.
 2. The method of claim 1 wherein thetime delay error is estimated using a single mathematical expression forall delays and polarities of a received reflected signal.
 3. The methodof claim 1 wherein estimating the time delay error comprises determiningone of multiple formulas from the correlation values, and calculatingthe time delay error using the determined formula.
 4. The method ofclaim 1 wherein the averaging is a moving average.
 5. The method ofclaim 1 wherein the averaging uses an averaging period larger than amultipath period.
 6. The method of claim 1 wherein the estimating usesalready available power values from different correlators to improveaccuracy of the estimated time delay error.
 7. A spread spectrumreceiver device comprising an RF front end for receiving spread spectrumsignals from a transmitter, a baseband section receiving IF signals fromthe RF front end, and a processor receiving baseband signals from thebaseband section, wherein the processor implements a method of detectingand compensating for error due to multi-path in the spread spectrumreceiver device, the method comprising: generating and storing ofsamples of received signal; generating samples of replica PN sequence;correlating the received signal with the local replica at five differentconsecutive code phases at an interval of approximately at leastone-third of a chip of the PN sequence; estimating the time delay errordue to the multi-path based on the power of the said five correlators;compensating the timing error of the receiver due to the multi-path; andrefining a code-phase increment by averaging a ratio of the power of asecond correlator to a prompt correlator.
 8. The device of claim 7wherein the time delay error is estimated using a single mathematicalexpression for all delays and polarities of a received reflected signal.9. The device of claim 7 wherein estimating the time delay errorcomprises determining one of multiple formulas from the correlationvalues, and calculating the time delay error using the determinedformula.
 10. The device of claim 7 wherein the averaging is a movingaverage.
 11. The device of claim 7 wherein the averaging uses anaveraging period larger than a multipath period.
 12. The device of claim7 wherein the estimating uses already available power values fromdifferent correlators to improve accuracy of the estimated time delayerror.
 13. A method of estimating a multi-path related error in a spreadspectrum receiver, the method comprising: receiving a signal from aremote transmitter; generating a local PN sequence corresponding to aunique PN sequence of the remote transmitter; correlating the receivedsignal with the local PN sequence at more than three different codephases to produce a prompt correlation measurement and three or moreearly and late correlation measurements, wherein the different codephases are separated by an interval of less than one-half of a chip ofthe local PN sequence; comparing certain of the correlation measurementsagainst each other; and estimating a time delay error due to themulti-path related error using a selected one of a plurality ofdifferent predetermined mathematical combinations of one or more of thecorrelation measurements, wherein the selection of the one mathematicalcombination is based on the comparison.
 14. The method of claim 13,wherein the remote transmitter comprises a transmitter in a satellitenavigational system, the method further comprising correcting anestimated position of the spread spectrum receiver using the estimatedtime delay error.
 15. The method of claim 13, further comprisingcorrecting the estimated time delay error using a known bias associatedwith the selected one mathematical combination.
 16. The method of claim13, further comprising: determining a smoothed value of one of thecorrelation measurements used in the selected one mathematicalcombination; and substituting the smoothed value for the one correlationmeasurement in the selected one mathematical combination.
 17. The methodof claim 16, wherein determining the smoothed value comprises computinga moving average of a plurality of past values of the one correlationmeasurement.
 18. The method of claim 13, wherein the more than threedifferent code phases comprises five different code phases, and theearly and late correlation measurements comprise two early and two latecorrelation measurements.